package stream流;

import java.util.*;
import java.util.stream.Stream;

public class stream流 {
    public static void main(String[] args) {
        List<String> name = new ArrayList<>();
        Collections.addAll(name, "aeiruaghp", "vpiughepir", "阿伟死了", "a8er7hp");
        name.stream().sorted().forEach(System.out::println);
        name.stream().filter(s -> s.length() >= 5).forEach(System.out::println);
        Set<String> set = new HashSet<>(name);
        set.stream().filter(s -> s.startsWith("a")).forEach(System.out::println);
        Map<String, Integer> map = new HashMap<>();
        for (int i = 0; i < 1000; i++) {
            map.put(String.valueOf(i), i);
        }
//        map.entrySet().stream().sorted((s1,s2)->s2.getValue()-s1.getValue())
//                .filter(s->s.getValue()%2==0&&s.getValue()>900).forEach(System.out::println);
//        map.entrySet().stream().sorted((s1,s2)->s2.getValue()-s1.getValue()).limit(10)
//                .forEach(System.out::println);
//        map.entrySet().stream().sorted((s1,s2)->s2.getValue()-s1.getValue()).skip(10).limit(10)
//                .forEach(System.out::println);
        map.entrySet().stream().filter(s -> s.getValue() > 500).map(Map.Entry::getKey).distinct().forEach(System.out::println);
        Map<String, Integer> map1 = new HashMap<>(map);
        Stream<String> stream = map.keySet().stream();
        Stream<String> stream1 = map1.keySet().stream();
        Stream.concat(stream, stream1).forEach(System.out::println);
//        终结方法
//        count,max(比较器),min(比较器),sum,collect(Collection.需要的容器类型),toarray
//        如果要转成map,可以使用collect(Collectors.toMap(e1->e1.get需要的字段,e2->e2.get需要的字段))
//        另外需要注意,一个流对象只能使用一次终结函数
    }
}
